/*!
 * \file frsoap_parse.h
 *
 * \brief soap解析用函数
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.\n
 * 实现soap数据的解析，获取request,response参数
 *
 * \version 2.0
 * \author geyh
 * \date 2015/03/04
 *
 */

#ifndef __FRSOAP_PARSE_H_
#define __FRSOAP_PARSE_H_

#include <libxml/xmlreader.h>
#include "frreport_comm.h"

/*!
 * 对soap数据进行解析  获取function 与 args
 *
 * \param p_data_in                    入力数据
 * \param i_data_len                   入力长度
 * \param p_st_body_data               上报数据链表
 *
 * \return FR_SUCC:成功\n
 *         FR_FAIL:失败
 *
 */
int frsoap_parse_req(char *p_data_in, int i_data_len, Frreport_body_data *p_st_body_data);

/*!
 * 对soap数据进行解析  获取 函数名 body体 与返回信息
 *
 * \param p_data_in                    入力数据
 * \param i_data_len                   入力长度
 * \param p_st_body_data               上报数据链表
 * \param pp_code_string               返回信息
 * \param pp_err_msg                   错误信息
 *
 * \return FR_SUCC:成功\n
 *         FR_FAIL:失败
 *
 * \note pp_err_msg  pp_code_string 外部释放
 *
 */
int frsoap_parse_resp(char *p_data_in, int i_data_len, Frreport_body_data *p_st_body_data, char **pp_code_string, char **pp_err_msg);


/*!
 * 判断是否为xml数据
 *
 * \param p_data_in                    入力数据
 * \param i_data_len                   入力长度
 *
 * \return FR_SUCC:是\n
 *         FR_FAIL:不是
 *
 */
int frxml_detect(char *p_data_in, int i_data_len);

/*!
 * 加了xml声明后尝试解析
 *
 * \param p_data_in                    入力数据
 * \param i_data_len                   入力长度
 *
 * \return FR_SUCC:是\n
 *         FR_FAIL:不是
 *
 */
int frxml_parser_read(char *p_data_in, int i_data_len);
#endif

